﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GEA_Controle_de_Processos.Code;
using GEA_Controle_de_Processos.messageBox;
using GEA_Controle_Processos.Data;
using GEA_Controle_Processos.Data.Negocio;

namespace GEA_Controle_de_Processos.Modulos.Vendedor
{
    public partial class TelaCadastroCliente : System.Web.UI.Page
    {
        NegocioCliente negocioCliente;
        NegocioEndereco negocioEndereco;
        protected void Page_Load(object sender, EventArgs e)
        {
            negocioCliente = new NegocioCliente();
            negocioEndereco = new NegocioEndereco();
            MessageBox.Include(this);
            
        }

        protected void btnLocalizarCliente_Click(object sender, EventArgs e)
        {

            Cliente cliente = negocioCliente.ObterCpf(tbxCPFLocalizar.Text);
            if (cliente != null)
            {

                montarDados(cliente);
                pnlConsultaCliente.Visible = false;
                pnlTotal.Visible = true;
                lblAlteraccao.Text = "true";
                MessageBox.Show("O CPF "+cliente.cpf+" <br/>já esta inserido no Sistema", MessageBox.MessageType.Warning);

            }
            else
            {
                pnlConsultaCliente.Visible = false;
                pnlTotal.Visible = true;
                tbxCpf.Text = tbxCPFLocalizar.Text;
                lblAlteraccao.Text = "false";
            }
            cliente= null;
        }

        protected void montarDados(Cliente cliente)
        {
            Endereco endereco = new Endereco();
            Cidade cid = new Cidade();
            cid = cliente.Endereco.Cidade;
            endereco = cliente.Endereco;
            tbxCpf.Text = cliente.cpf;
            tbxNome.Text = cliente.nome;
            tbxRg.Text = cliente.rg;
            ddlSexo.SelectedValue = cliente.sexo;
            tbxFone.Text = cliente.telefone;
            tbxCelular.Text =  cliente.celular;
            tbxDataNasc.Text =  cliente.datanascimento.ToString();
            if (cliente.dependentes == true)
                rblDep.SelectedValue = "Sim";
            else
                rblDep.SelectedValue = "Não";
            tbxEmail.Text = cliente.email;
            ddlTipoTelefone.SelectedValue = cliente.tipoTelefone;
            ddlEstadoCivil.SelectedValue = cliente.estadoCivil;
            tbxLogradrou.Text = endereco.descricao;
            tbxComplemento.Text = endereco.complemento ;
            tbxNumero.Text = Convert.ToString(endereco.numero);
            tbxBairro.Text = endereco.bairro;
            tbxCep.Text = endereco.cep;
            ddlUf.SelectedValue = Convert.ToString(cid.Uf_ufNome);
            ddlCidade.SelectedValue =Convert.ToString(endereco.Cidade_idCidade);

        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            Response.Redirect("/Default.aspx");
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            if (Dados() == true)
            {
                Response.Redirect("/Default.aspx");
            }
        }

        protected bool Dados()
        {
            Cliente cliente = new Cliente();
            Endereco endereco = new Endereco();
            cliente.cpf = tbxCpf.Text;
            cliente.nome = tbxNome.Text;
            cliente.rg = tbxRg.Text;
            cliente.sexo = ddlSexo.SelectedValue.ToString();
            cliente.apelido = tbxApelido.Text;
            cliente.situacao = true;
            cliente.telefone = tbxFone.Text;
            cliente.celular = tbxCelular.Text;
            cliente.datanascimento = Convert.ToDateTime(tbxDataNasc.Text);
            string value = rblDep.SelectedValue.ToString();
            if (value == "Sim")
                cliente.dependentes = true;
            else
                cliente.dependentes = false;
            cliente.email = tbxEmail.Text;
            cliente.tipoTelefone = ddlTipoTelefone.SelectedValue.ToString();
            cliente.estadoCivil = ddlEstadoCivil.SelectedValue.ToString();
            endereco.descricao = tbxLogradrou.Text;
            endereco.complemento = tbxComplemento.Text;
            endereco.numero = Convert.ToInt32(tbxNumero.Text);
            endereco.bairro = tbxBairro.Text;
            endereco.cep = tbxCep.Text;
            endereco.Cidade_idCidade = Convert.ToInt32(ddlCidade.SelectedValue.ToString());
            cliente.usuarioEntrada = "";
            cliente.dataEntrada = DateTime.Now.Date;
            cliente.usuarioAlteracao = "";
            cliente.dataAlteracao = DateTime.Now.Date;
            if (lblAlteraccao.Text == "true")
            {
                lblAlteraccao.Text = "false";
                return negocioCliente.Update(cliente);
                
            }
            else
            {
                try
                {
                    negocioEndereco.Inserir(endereco);
                    cliente.Endereco_idEndereco = endereco.idEndereco;
                    negocioCliente.Inserir(cliente);
                    return true;
                }
                catch
                {

                    return false;
                } 

            }
                

        }
    }
}